None of This is Written in Stone

On a recent trip to Manhattan, I had lunch with an old friend of mine. He is a professional music critic, writer and teacher. One thing he said to me that has unexpectedly rattled inside my head ever since is this candid confession from him (I'm paraphrasing)

I've learned that my reviews are snapshots of something ephemeral, they reflect my immediate impressions of a concert and I don't try to make them more than that. If I'm on deadline and have to write a review at 11:00 pm after a 3 hour concert, I can only write about what I'm feeling in the moment. If I were to hear the same piece the next afternoon I might walk away with a different impression of what I just heard.

Much of what I've written in this blog is ephemeral. The technology that programming is based on is rapidly evolving and becoming ever more powerful - if also bringing additional complexity to the overall picture. If something doesn't work for you, then try something else. Maybe you'll find a new API that makes it easier to accomplish something that used to require jumping through too many hoops. Perhaps you already have an implementation in Kotlin - or you just found one that's pretty close to what you need. Is there a tool to transform the code without rewriting the whole thing from scratch? You won't know unless you look.

There's Got to be a Better Way

When it comes to programming, there's always more than one way to do something. Does it need to be adaptable (typically it does), does it rely on the target device having the latest camera technology to work properly? Who are we writing it for? Does it have to support clients who don't immediately upgrade to the latest release, or who only buy a new device every 3-5 years? There are always so many variables when developing and it's easy to forget all the constraints we are juggling.

Phones and Tablets are getting ever more powerful, and the software that runs them is constantly becoming more complex. The only thing you can count on is that things change.